asp.net mvc

更新时间:2024-08-26 20:02

ASP.NET MVC 是Windows系统下面的Web研发框架,有Microsoft提供。MVC顾名思义:Model, View, Controller.是UI端分层的三层模式。跟三层架构有着本质区别。.Net MVC彻底的分离了前后端,以及抽象层结构的依赖注入,横切编程模式。用于模型架构的ModelMedata,用于模型验证的ValidateProvider,用于数据提供的ValueProvider,用于数据绑定的ModeBinder,用于视图绑定的ViewEngine引擎等。构成了Asp.Net MVC架构的模式。

三层模式技术

一.技术简介:.Net MVC 为UI端分层框架,是微软在改进WebForm框架的基础上革新的一个轻量级Framework。不同于WebForm事件驱动模式,.Net MVC以恢复原本web开发本质为基础,彻底更新了与Web本质渐行渐远的事件驱动模式,也改良了WebForm历史所带来的枷锁,同时微软在框架革新的基础上进一步开源,成为了跨平台或者技术兴趣爱好者的首选Web开发框架。

二 .三层介绍:.Net MVC UI三层,分别为Model(实体类),View(视图模型层,有人认为只是视图层,其实是不对的,这个View包含了强类型模型),Controller(控制器,.Net MVC里面所有的一切Action 或者事件都可以在里面进行,比如操作数据库,绑定数据类型,View视图展示等)

三..Net MVC流程:跟WebForm类似,Asp.Net MVC都是经过管道模型(httpModule,HttpHandler)。.Net MVC引入了Microsoft.Web.AI (实际上是微软人工智能的一部分,引入Web程序MVC框架之后,牛刀小试)之后,利用ApplicationInsights作为Module管道,可提高测试性能,提高更大扩展性功能,以及远程遥控程序运行点数等。抛却宿主以及IIS寄宿DLL等,.Net MVC 入口点可以看做是MvcHanlder的BeginProcessRequest函数起始运行,通过依赖注入(ID or IOC)初始化Controller类工厂,获取到当前要被激活的Controller构建ControllerDescriptor。然后在控制器描述类中筛选合适的Action构建ActionDescriptor,以便执行Action。在Aciton执行内部,通过.Net MVC提供的视图引擎ViewEngine展示CSHTML文件,通过InputWriter和OutWirter相互转化构建HTML文件,展示在客户端。

四.异步结果包:在构建.Net MVC,然后展示视图的一系列过程中,异步结果包(AsyncResultWrappper)类起到了至关重要的作用,它不仅构建了整个.Net MVC的运行流程。还控制了.Net MVC同步或者异步运行的过程以及结果。如果把.Net MVC 比喻成一个汽车,那么异步结果包可以视为这台汽车的引擎发动机。异步结果包类是程序集形式的静态类,它所有函数均为Static,为构建结果包异步(WrapperAsyncResult)做准备,或者是作为启动点。

五.AOP ,IOC,DI模式:在.Net MVC中,依赖注入(DI),IOC(控制反转),AOP(面向横切的编程)是重复几率使用最为频发,也是最为核心的三大技术点。DI实质上是一个容器类,容器类里面包含了当前程序需要注入的点。IOC则是这些控制点需要跳转到的程序,或者是控制权移交之后需要执行的程序集或者DLL或者一个函数,或者一段代码。AOP是面向横切的编程,或者亦称之为:面向切面的编程。顾名思义:横切或者切面,就是在程序或者函数上进行一段代码插入或者拦截,或者做一些其它事情。在.Net MVC 里面,面向横切的编程最主要体现在筛选器功能上,这些筛选器可以进一步控制Action或者Controller,宽松或者更严格的执行你想要的或者是自己想要结果。

三层模式技术点

一.Model绑定:Model绑定利用Modelbinder对模型进行数据绑定或者赋值。

二.数据提供模型(ValueProvider):获取当前提交的数据或者数据流等

三.Model验证(valuedator):验证当前模型的正确性

四.Controller类工厂实例化:依靠依赖注入模式激活Controller

五.Action激活:通过Aggregate构建的递归链执行Action

六.视图展示:通过ViewEngine 引擎展示IView接口的视图

七.筛选器(filter):通过AOP编程切入程序的一种技术模式

八.MultiServiceResolver类解析:

九.SingleServiceResolver类解析

十.DependencyResolver类详解

特色与优点

MVC (Model、View、Controller)将一个Web应用分解为:Model、View和Controller。ASP.NET MVC框架提供了一个可以代替ASP.NETWebForm的基于MVC设计模式的应用。

ASP.NET MVC概述·MVC的优点:

1.通过把项目分成Model、View和Controller,使得复杂项目更加容易维护,减少项目之间的耦合。

2.使用ViewState和服务器表单控件,可以更方便的控制应用程序的行为

3.应用程序通过Controller来控制程序请求,并提供了原生的UrlRouting功能来重写Url。

4.使Web程序对单元测试的支持更加出色

5.在团队开发模式下表现更出众

ASP.NET MVC概述·WebForm的优点:

1.采用事件驱动模式来控制应用程序请求,由大量服务器控件支持

2.采用页面控制机制,可以为单个页面添加事件处理函数

3.没有使用ViewState和服务器端页面,使管理页面状态信息更加轻松。

4.对人数较少的想使用服务器端控件的开发团队,使用起来更加方便

5.开发起来比MVC模式要轻松简单一些

ASP.NET MVC概述MVC框架特色:

1.分离任务(输入逻辑,业务逻辑和显示逻辑),易于测试和默认支持测试驱动开发(TDD)。所有MVC用到的组件都是基于接口并且可以在进行测试时进行Mock,你在不运行ASP.NET进程的情况下进行测试,使得测试更加快速和简捷。

2.可扩展的简便的框架。MVC框架被设计用来更轻松的移植和定制功能。你可以自定义视图引擎、UrlRouting规则及重载Action方法等。MVC也支持Dependency Injection (DI,依赖注入) and Inversion of Control (IoC,控制反转)的良好支持。

3.强大的UrlRouting机制让你更方便的建立容易理解和可搜索的Url,为SEO提供更好的支持。Url可以不包含任何文件扩展名,并且可以重写Url使其对搜索引擎更加友好。

4.可以使用ASP.NET现有的页面标记、用户控件、模板页。你可以使用嵌套模板页,嵌入表达式<%=%>,声明服务器控件、模板,数据绑定、定位等等。

5.对现有的asp.net程序的支持,mvc让你可以使用如窗体认证和Windows认证、url认证、组管理和规则、输出、数据缓存、session、profile 、health monitoring、配置管理系统、provider architecture特性。

2.0

Scott Gu在博客中宣布ASP.NET MVC 2正式版发布,该版本适用于Visual Studio 2008及基于ASP.NET 3.5平台的Visual Web Developer 2008 Express。

在2010年4月12日发布的VS 2010正式版与Visual Web Developer 2010正式版中内置对ASP.NET MVC 2的支持,不需要再另外安装。

ASP.NET MVC 2是ASP.NET MVC的又一次重大更新,兼容ASP.NETMVC 1,和以前一样,ASP.NET MVC 2源代码完全开放。

ASP.NET MVC 2可以与ASP.NET MVC 1并存,也就是说在同一台机器上,可以有的程序用ASP.NET MVC 1,有的程序用ASP.NET MVC 2。

3.0

ASP.NET MVC 3可以与ASP.NET MVC 2并存。

ASP.NET MVC 3中提供了新的View引擎,Razor。

4.0

ASP.NET MVC 4已经正式发布,并内置于Visual Studio 2012,新版本ASP.NET MVC版本新增了手机模版、单页应用程序,Web API等模版,更新了一些 javascript 库,其中示例页面也使用了jquery的AJAX登录,并增加了OAuth认证/Entity Framework5的支持。同时也增强了对HTML5、AsyncController等的支持。

关键技术

ASP .NET MVC内包含若干关键技术。

ActionResult : Action 的返回类型

Filter :过滤器

ModelBinder : Model绑定器

Url Routing :Url路由规则

视图引擎:ASP .NET MVC包含多种视图引擎,其中以WebForms(即aspx)以及WebPages(Razor)最为常用

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}